import pika
import json

# RabbitMQ 连接信息
connection_params = pika.ConnectionParameters(
    host='localhost',  # RabbitMQ 服务器地址
    virtual_host='order_vhost',  # 使用的虚拟主机
    credentials=pika.PlainCredentials('admin', '123')  # RabbitMQ 用户名和密码
)

# 创建连接和信道
connection = pika.BlockingConnection(connection_params)
channel = connection.channel()

# 声明队列
channel.queue_declare(queue='order_queue', durable=True)

# 要发送的 JSON 数据
order_data = {
    'order_id': 2024,
    'item': 'Your Item',
    'quantity': 1,
    'total_amount': 100.0
}

# 将 JSON 数据转换为字符串
message_body = json.dumps(order_data)

# 发送消息到队列
channel.basic_publish(
    exchange='',
    routing_key='order_queue',
    body=message_body,
    properties=pika.BasicProperties(
        delivery_mode=2,  # 使消息持久化
    )
)

print(" [x] Sent order data: %r" % message_body)

# 关闭连接
connection.close()
